The present invention relates to digital communication, and more particularly to trellis coding used with multiple-input multiple-output communication systems.
Demand for wireless digital communication and data processing systems is on the rise. Inherent in most digital communication channels are errors between what was sent and what was detected. Such errors are often caused by electrical interference or thermal noise. Data transmission error rates depend, in part, on the medium that carries the data; i.e., the channel. Typical bit error rates for copper based data transmission systems are in the order of one error per 106 bits. Optical fibers have typical bit error rates of 10−9 or less. Wireless transmission systems, on the other hand, may have error rates of 10−3 or higher.
The relatively high bit error rates of wireless transmission systems pose certain difficulties in encoding and decoding of data transmitted via such systems. A typical coding design models errors by an additive white Gaussian noise (AWGN) source added to the transmitted signal, partly because of its mathematical tractability and partly because of its application to a broad class of physical communication channels.
One approach to overcoming the effects of noise on data is to encode data at the transmitter, in a controlled manner, to include redundancy. The redundancy is subsequently used by the receiver to overcome the noise and interference introduced on the signal representing the data as the signal is being transmitted through the channel. For example, in a simple transmitter, k bits of information are coded by n-bit sequences, where n is greater than k, according to some coding scheme. The amount of redundancy introduced by the encoding of the data is determined by the ratio n/k, the inverse of which is referred to as the “code rate.” Codewords representing the n-bit sequences can be generated by an encoder and delivered to a modulator that interfaces with the communication channel. The modulator might map each received sequence into a symbol. In M-ary signaling, the modulator maps each n-bit sequence into one of M=2n symbols. Data in other than binary form may be encoded, but typically the data is representable by a binary digit sequence.
To gain bandwidth efficiency and coding, Trellis Coded Modulation (TCM) has been developed and combines a multilevel phase modulation signaling set with a trellis coding scheme. TCM increases the minimum Euclidean distance between pairs of coded signals to reduce the loss from the expansion of signal set and to achieve coding gain with relatively simple codes. TCM is described in many places such as in Ungerboeck, “Trellis-Coded Modulation with Redundant Signal Sets Part I,” IEEE Communications Magazine, Vol. 25, February 1987; and in Ungerboeck, “Trellis-Coded Modulation with Redundant Signal Sets Part II,” IEEE Communications Magazine, Vol. 25, February 1987, both of which are incorporated herein by reference for all purposes.
At the receiving end of a transmission channel, the coded symbols are decoded to recover the transmitted data with a goal of minimizing the error rate. The Viterbi algorithm is an efficient maximum-likelihood sequence detection method for decoding convolutional and trellis coded symbols transmitted over AWGN channels. The Viterbi algorithm is described in a number of publications. See for example, Viterbi, “Error Bounds for Convolutional Codes and an Asymptotically Optimum Decoding Algorithm”, IEEE Trans. on Information Theory, Vol. IT-13, April 1967; Forney, Jr., “Maximum-Likelihood Sequence Detection in the Presence of Intersymbol Interference” IEEE Trans. on Information Theory, Vol. IT-18, pp. 363-378, May 1972; and Forney, Jr., “The Viterbi Algorithm”, IEEE Proceedings, Vol. 61, pp. 268-278, March 1973, all of which are incorporated herein by reference for all purposes.
In accordance with the Viterbi algorithm, for each received sample, a distance between that sample taken at time ti and all the trellis paths entering each state at time ti is calculated. In the Viterbi algorithm, the minimum Euclidean distance is selected as the optimum branch metric for decoding convolutional and trellis sequences transmitted in AWGN channels.
To increase data rate and operating range without increasing the bandwidth, multiple-input multiple-output (MIMO) systems have been developed. In a MIMO system, the transmitter includes multiple transmit antennas and the receiver includes multiple receive antennas. The transmitter splits the data to be transmitted into a number of streams (typically bit streams) or otherwise divides the transmission task and transmits the streams via the multiple transmit antennas. The receiver receives the transmitted streams via the multiple receive antennas.
FIG. 1 is a simplified block diagram of a prior art MIMO TCM encoder 10. TCM encoder 10 includes a serial-to-parallel converter 12, a convolutional encoder 14, a symbol mapper 16 and a serial-to-parallel converter 18. The MIMO system (not shown) of which MIMO TCM encoder 10 is a part, includes Mt transmit antennas and Mr receive antennas (not shown). The channel through which the data encoded by TCM encoder 10 is transmitted is characterized by the complex matrix H having the dimensions of Mr×Mt. The channel is assumed to be an AWGN channel. Convolutional encoder 14 in conjunction with symbol mapper 16 performs the TCM encoding.
The labeling convention used herein for alphanumeric symbols represents scalar quantities as italic symbols, vectors as lowercase bold symbols, and matrices as uppercase bold symbols. Unless otherwise indicated, it is understood that each scalar quantity, vector component or matrix element can be a complex number.
Unencoded data bit streams arrive at serial-to-parallel converter 12 (hereinbelow referred to alternatively as converter 12). Out of every u+k bits that serially arrive at converter 12, u bits are delivered in parallel to symbol mapper 16 and k bits are delivered in parallel to convolutional encoder 14. The k-bits are encoded by convolutional encoder 14, which is assumed to have a code rate of k/n. Symbol mapper 16 uses the n encoded bits to select one of 2n cosets of symbols, each having 2u labels. Symbol mapper 16 then uses the u unencoded bits to select one of the 2u labels from the selected coset. Each label so selected is represented by a complex number having a real and an imaginary component thus representing a constellation point in the complex plane. Serial-to-parallel converter 18 converts a serial symbol stream into Mt parallel symbols, which are transmitted by the corresponding Mt transmit antennas. Accordingly, each transmitted vector y has Mt complex components. Each received vector r has the dimension of Mr and is represented by the following expression:r=Hy+v where v is a vector representing noise and/or interference, and is assumed to have a spatial auto-covariance matrix, and H represents the channel responses between each transmit antenna and each receive antenna.
FIG. 2 is a simplified block diagram of a prior art MIMO TCM decoder 30 that is adapted to decode the data encoded by TCM encoder 10 after this data is transmitted. MIMO TCM decoder 30 includes a Logarithmic Maximum A Posteriori (Log-MAP) decoder 30, a Viterbi trellis decoder 34, a selector 36 and a parallel-to-serial converter 38. Log-MAP decoder 32 is supplied with the received vector r and the channel matrix H and, in response, generates an estimate for each of the transmitted symbols; this estimate is also referred to as a soft decision of the decoded symbol. In particular, Log-MAP decoder 32 finds the Euclidean distance between the received vector r and the nearest label in each coset for one antenna by searching over all other possible transmitted labels on the other Mt−1 antennas and does this for each antenna. For each coset j, for all possible labels in coset j and for each transmit antenna i, Log-MAP decoder 32 computes a distance metric d(i,j) and a corresponding label metric label(i, j), as shown below:
                              ⅆ                      (                          ⅈ              ,              j                        )                          =                              min            k                    ⁢                                                    (                                  r                  -                                      H                    ⁢                                                                                  ⁢                                          X                      ⁡                                              (                        k                        )                                                                                            )                            H                        ⁢                                                  ⁢                                          Λ                                  -                  1                                            ⁡                              (                                  r                  -                                      H                    ⁢                                                                                  ⁢                                          X                      ⁡                                              (                        k                        )                                                                                            )                                                                        (        1        )                                          label          ⁡                      (                          ⅈ              ,              j                        )                          =                                            a              ⁢                                                          ⁢              r              ⁢                                                          ⁢              g              ⁢                                                          ⁢              min                        k                    ⁢                                    (                              r                -                                  H                  ⁢                                                                          ⁢                                      X                    ⁡                                          (                      k                      )                                                                                  )                        H                    ⁢                                          ⁢                                    Λ                              -                1                                      ⁡                          (                              r                -                                  H                  ⁢                                                                          ⁢                                      X                    ⁡                                          (                      k                      )                                                                                  )                                                          (        2        )            In the above equations (1) and (2):                H: is the channel estimate matrix,        Λ−1: is the inverse of the auto-covariance matrix of any of the antennas,        X: is a Mt by CL matrix of the possible transmitted symbol combinations on all the Mt antennas, where C=2n is the number of cosets, and L=2u is the number of labels in each coset.        X(k): represents all rows of matrix X that have an element of coset k in their ith column.        
Metrics d(i, j) and label(i, j) so computed are supplied to Viterbi (trellis) decoder 34 and selector 36, respectively. Viterbi decoder 34 assigns the same distance d(i,j) to all edges in the trellis that generate an output with elements from coset j. The metrics d(i,j) and label(i,j) corresponding to each transmit antenna i are applied to associated transitions of the trellis. For instance, the distance and label metrics associated with transmit antenna 1 are applied to the following transitions in the trellis:0, Mt, 2*Mt . . .Similarly, the distances and label metrics associated with transmit antenna 2 are applied to the following transitions in the trellis:1, Mt+1, 2*Mt+1, . . .
Viterbi decoder 34 identifies the most likely k unencoded bits received by converter 12 (see FIG. 1) and the corresponding coset for each channel instance. The most likely coset returned from Viterbi decoder 34 is supplied to selector 36. Using the cosets received from Viterbi decoder 34, selector 36 identifies the most likely u unencoded bits and the corresponding labels for each channel instance. Parallel-to-serial converter 38 receives the bit streams associated with the cosets and labels in parallel—as identified by Viterbi decoder 34 and selector 36—and serializes these bit streams at its output terminals.
A number of well-known codes that have been devised to increase the reliability in data transmission require that errors caused by the channel to be statistically independent. This is the case for the AWGN channels. However, there are channels, such as those characterized by fading, that exhibit bursty error characteristics. Signal fading often causes the signal to fall below the noise level, thus resulting in a large number of errors. One conventional method for improving bursty error channels and fading is to interleave the codewords in such a way that the bursty channel is transformed into a channel having independent errors. In other words, interleaving the codewords before transmission and deinterleaving after reception causes burst of channel errors to be spread out in time so as to appear as random errors.
It is desired to have a technique for increasing the reliability with which data is transmitted through fading channels in a MIMO TCM system.